System and method for dynamically displaying HTML form elements

ABSTRACT

A method of selectively displaying a markup language form element on a Web page when an associated object is available to a Web server, the method comprising associating the markup language form element with the object, determining whether the object is available to the Web server; generating a markup language document that includes the markup language form element if the object is available to the Web server, and displaying the markup language form element if the markup language document contains the markup language form element.

FIELD OF THE INVENTION

The present invention relates generally to client-server based computernetworks, and more particularly to a system and method for dynamicallyproviding content to the client.

BACKGROUND OF THE INVENTION

The Internet is a system of geographically distributed computer networksinterconnected by computers executing networking protocols that allowusers to interact and share information over the networks. Morespecifically, the World-Wide-Web (“WWW”) is a collection of Web serverswhich support documents formatted as so called “Web pages” for viewingby Web clients. The WWW communications paradigm is based on aconventional client-server model and is facilitated by the use of Webservers which support Internet and Web protocols (e.g. TCP/IP andHypertext Transfer Protocol (“HTTP”)).

Web clients can request Web page documents from a Web server which arethen served to the Web clients over the WWW. A Web page is a computerdata file on a host operating a Web server. The Web page may comprise asingle line or multiple pages of information and may include anymessage, name, word, sound, picture, or combination of these elements.Users commonly view Web pages using tools known as Web browsers, whichare software programs that are installed on the Web client and whichallow users to access and search the Internet. Web browsers may begraphical (such as Netscape Corporation's Navigator™ or MicrosoftCorporation's Internet Explorer™) or text based (such as Gopher). In aWeb browser, information is displayed along with hypertext links whichidentify other WWW sites.

Web pages are created using a standard coding language called, HypertextMarkup Language (“HTML”). HTML along with Extended Markup Language(“XML”) and others are members of a family of computer languagesreferred to as “markup languages”. Markup languages are computerlanguages which define the format of a text document in adevice-independent way. A primary purpose of a markup language, such asHTML, is to instruct a Web browser how to display the contents of thedocument, including text, images and other support media.

An HTML document contains textual tags indicating a format to be appliedor other action to be taken relative to document text. These tags arecharacter strings that have defined meanings in the particular markuplanguage being used. Accordingly, HTML is a collection ofplatform-independent tags, which define the various components of theWeb page. HTML documents are generally static, that is, the contents donot change over time except when the document is manually modified.Accordingly, in order to provide different HTML documents, it isnecessary to install a server-side program that can generate an HTMLdocument. HTML forms are comprised of one or more text input boxes,clickable buttons, multiple choice check boxes, and pull down menus andimage maps. One or more HTML form can be included in an HTML document.Each HTML form can contain the same content as a HTML document,including text and images.

Typically, a Web server administrator is sold a “suite” of serverapplication programs (e.g. IBM's Websphere™ Commerce Suite Version 4.1)from which certain application programs can be specifically selected forinstallation on the Web server. Once these server application programsare installed, they can be used to enhance the functionality of the Website hosted by Web server. Access to these server application programscan be provided to the use through the use of HTML form elements such asbuttons or scroll-down menus displayed by the Web browser.

The Web server administrator is also provided with a standard Web serverprogram (typically in Java) which generates an HTML document thatprovides Web clients with interactive access to the various serverapplication programs that are installed on a Web server. If a Web serveradministrator decides to install or de-install a particular serverapplication program on the Web server then they will want to eitherprovide or remove an associated HTML form element (e.g. applicationenabling button) from the Web page that is displayed to the user. Inorder to do so, it is generally necessary for the Web serveradministrator to modify the Web server program in order to provide anappropriate HTML document to the Web client. This type of program filemaintenance is extremely cumbersome and time consuming especially whenthere are a large number of server applications that are routinelyinstalled and de-installed on a Web server.

Accordingly, there is a need for a system and method which allows forthe selective display of an HTML form element on a Web page at a Webclient depending on whether an associated server application program isinstalled on a Web server.

SUMMARY OF THE INVENTION

It is therefore an object of the present invention in one aspect toprovide a method of selectively displaying a markup language formelement on a Web page when an object is available to a Web server, themethod comprising the steps of:

-   -   (a) associating the markup language form element with the        object;    -   (b) determining whether the object is available to the Web        server;    -   (c) generating a markup language document that includes the        markup language form element if the object is available to the        Web server; and    -   (d) displaying the markup language form element on the Web page        if the markup language document contains the markup language        form element.

In another aspect the invention provides a computer system forselectively displaying a markup language form element on a Web page whenan associated object is available to a Web server, said computer systemcomprising:

-   -   (a) a server for generating a markup language document, said        server comprising:        -   (i) storage means for storing a value representing whether            the object is available to the Web server;        -   (ii) a first processing means coupled to said storage means            for:            -   (A) determining whether the object is available to the                Web server;            -   (B) generating a markup language document that includes                the markup language form element if the object is                available to the Web server;    -   (b) a communications network coupled to said server; and    -   (c) a second processing means coupled to said server through        said communications network, said second processing means for        reading and displaying the markup language document.

It will be appreciated by those skilled in the art that the inventioncan be embodied in a computer program which can be stored in storage ortransmitted as a signal, such as on a modulated carrier signal for usein a computer system, or on a network such as the Internet for use in acomputer system.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the present invention and to show moreclearly how it may be carried into effect, reference will now be made,by way of example, to the accompanying drawings, which show a preferredembodiment of the present invention and in which:

FIG. 1 is a block diagram of a computer network within which the presentinvention is implemented;

FIG. 2 is a schematic diagram of a Web server and a Web client of FIG. 1illustrating the interaction between server and client;

FIG. 3 is a screen capture of a Web browser displaying an HTML documentgenerated by the Web server of FIG. 2 that provides the user with accessto a number of application programs installed on the Web server of FIG.2;

FIG. 4 is a schematic diagram of a computer system according to apreferred embodiment of the present invention that includes a displayserver program and configuration files installed on a Web server;

FIGS. 5A and 5B are flowchart diagrams illustrating a preferred methodof the present invention for utilizing the display server program andthe configuration files of FIG. 4 for selectively displaying an HTMLform element on a Web page; and

FIGS. 6A and 6B are flowchart diagrams illustrating the process steps ofthe display server program of FIG. 4 that generates the HTML documentfor display on a Web page at the Web client.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Reference is first made to FIG. 1 which shows a conceptual diagram ofthe well known Internet computer network 10 within which the presentinvention can be implemented. The Internet 10 is based on a clientserver model and comprises a large network of Web servers 12 which areaccessible by a plurality of Web clients 14 over a communication network16. The World-Wide-Web (“WWW”) is a collection of Web servers 12 thatutilize the hypertext transfer protocol (“HTTP”). HTTP is a knownapplication protocol that provides users access to files (which can bein different formats such as text, graphics, images, sound, video, etc.)using a standard page description language or “markup language”, such asHypertext Markup Language (“HTML”) or Extended Markup Language (“XML”).

FIG. 2 shows a computer system 19 comprising a Web server 12 and Webclient 14 connected over communication network 16. The hardwarecomponents of Web server 12 and Web client 14 are shown in greaterdetail.

Web server 12 includes conventional components such as a processor 20,memory 22 (e.g. RAM), a bus 24 which couples the processor 20 and memory22, a mass storage device 26 (e.g. a magnetic or optical disk) coupledto the processor 20 and memory 22 through an I/O controller 28 and anetwork interface 29, such as a conventional modem. Web server 12typically comprises a server computer (e.g., a UNIX or Windows NT-basedcomputer) connected to communication network 16 (e.g. the Internet, anintranet or other network) and on which is installed Web serversoftware.

Web client 14 may be any personal computer of other computer that iscapable of running a Web browser program 15 and includes conventionalcomponents such as a processor 30, memory 32 (e.g. RAM), a bus 34 whichcouples the processor 30 and memory 32, a mass storage device 36 (e.g. amagnetic hard disk or an optical storage disk) coupled to the processor30 and memory through an I/O controller 38 and a network interface 39(e.g. a conventional modem). The operating system of Web client 14 maybe Windows, OS/2, or Linux. Memory 32 supports a number of internetaccess tools including a HTTP compliant Web browser 15 (e.g. Netscape™Navigator by Netscape Communications of Mountain View, California orInternet Explorer™ by Microsoft Corporation of Redmond, Washington,etc.) As discussed, Web browser 15 is a software program that allows Webclient 14 to communicate with Web server 12 to enable access to andviewing of HTML documents.

Web server 12 is a computer which is capable of running Web serversoftware such as that provided by Netscape, Microsoft or Apache. Webserver 12 operates a “Web site” which supports files in the forms ofHTML documents and pages. The Web server software is configured with thehost name of Web server 12 and the location of HTML documents stored byWeb server 12 and those stored on other servers. The location of an HTMLdocument 40 is defined by an address called a URL (“Uniform ResourceLocator”). Web browser 15 uses a particular URL to find and fetchresources from the Internet and the WWW. In addition to HTML code, HTMLdocument 40 can incorporate other information content 42, such asimages, audio, video, executable programs, etc. (shown as “images” 42),which typically reside at Web server 12 but may reside on othercomputers connected to communication network 16. In the preferredembodiment, HTML document 40 and images 42 are stored as files in a filesystem of Web server 12. HTML document 40 incorporates the images 42using HTML tags that specify the location of files or other Internetresources.

Accordingly, to access a Web page, a Web page request is entered by theuser specifying a Uniform Resource Locator (“URL”) via Web browser 15 onWeb client 14. The user can send a URL over the WWW by “clicking” with amouse on a Web page link, or the user can enter the entire URL addressmanually into Web browser 15. When user at Web client 14 sends a URLfrom Web client 14 this URL is sent and travels across the WWW (overcommunications network 16), contacting Web server 12 as specified in theURL. Specifically, Web client 14 makes a TCP/IP request (i.e. the URL issent to Web server 12 using HTTP) to Web server 12. The URL provided bythe application refers to HTML document 40 stored on Web server 12.

Web server 12 responds by locating the requested HTML document 40 andreturning it to the browser on Web client 14. Web browser 15 receivesHTML document 40, interprets the HTML codes, translates them into a Webpage (i.e. a document formatted according to HTML), and displays the Webpage on Web client 14. In order to display HTML document 40, the browsercontrol makes a request to the hypertext viewer (not shown) to create aninstance of a document viewer. This document viewer has a programminginterface (specifically a document object interface) through which Webbrowser 15 manages the display of the document in the designated frame(not shown). In response to requests from Web browser 15, the hypertextviewer parses and renders the HTML code and displays HTML document 40and related graphical content within the frame.

FIG. 3 is a screen capture of a typical user interface to Web browser15, shown generally as 13. User interface 13 generated on Web client 14provides the user with access to a number of application programsinstalled on Web server 12 through the use of HTML form elements 21 a,21b,21 c and 21 d. A user will normally employ Web browser 15 to browseall the data content (i.e. HTML document 40) received from a URL requestmade to the WWW.

Now referring to FIGS. 2 and 3, an administrator of Web server 12 istypically provided with a bundle of server application programs forinstallation on the Web server 12. These server application programs canthen be offered to Web clients 14 over the WWW. The Web serveradministrator is also given a standard Web server program (e.g. a Javaprogram) which generates a HTML document that includes HTML formelements (e.g. buttons) for display by Web client 14 and which allowusers to access the server application programs. In a case where a Webserver administrator only installs a subset of the bundle of applicationprograms on Web server 12, certain application programs are notavailable for execution by Web client 14 and the corresponding HTML formelements should not be displayed to the user.

For illustrative purposes, consider the situation where a number ofserver application programs, namely DELETE ROW, CREATE ROW, MODIFY ROWand GRAPH ROW are installed on Web server 12. As shown in FIG. 3, theassociated HTML form elements 21 a,21 b,21 c and 21 d are displayed byuser interface 13. Specifically, the delete row application program isdisplayed as the DELETE ROW button 21 a, the create row applicationprogram is displayed as the CREATE ROW button 21 b, the modify rowapplication program is displayed as a MODIFY ROW button 21 c, and agraph row application program is displayed as a GRAPH ROW button 21 d.The user can execute any one of these server application programs bysimply selecting the appropriate HTML form element (e.g. button).

In a case where the graph row server application program is notinstalled on Web server 12, the HTML form element (i.e. the GRAPH ROWbutton) should not be shown to the user since it is not available forexecution. If it is in fact shown to the user, then it's display by Webbrowser 15 would only cause confusion and detract from the overalleffectiveness of the graphical user interface. It should be understoodthat the HTML form element could be any type of form element (e.g. pulldown menu element, scrolling listing, etc.), and that a button elementis utilized in the present discussion for illustrative purposes only.

Referring now to FIG. 4, a computer system 50 is shown within which thedynamic display of HTML form element can be accomplished in accordancewith a preferred embodiment of the invention. A display server program52 installed on Web server 12 is used to generate HTML document 40 forprocessing by Web browser 15 at Web client 14. A HTML form elementconfiguration file 54 a and a component configuration file 54 b areparsed by display server program 52 at run time.

HTML form element configuration file 54 a contains descriptions of theHTML form elements and their associated component (i.e. the serverapplication program that they represent). Component configuration file54 b contains the installation status (i.e. installed or uninstalled)for the server application programs at issue. The present invention hasbeen implemented within IBM's Websphere™ Commerce Suite Version 5.1 andprovides for the dynamic display of HTML form element by associating theinstallation status of a particular server application program with acorresponding HTML form element.

Display server program 52 can be implemented within any type of softwareprogramming language which is capable of generating an HTML document(e.g. Sun Microsystem's JavaServer Pages™ technology (“JSP”),Microsoft's Active Server Page™ language (“ASP”), C++ language, etc.)For illustrative purposes, it will be assumed that display serverprogram 52 is written as a JSP program. JSP programs typically containXML-like tags and scriptlets written in the Java programming language toencapsulate the logic that generates the content for the page.

HTML form element and component configuration files 54 a and 54 b can beimplemented within any type of markup language (e.g. HTML, XML, etc.)However, for illustrative purposes, it will be assumed that they arewritten in XML. As discussed, HTML form element configuration file 54 acontains descriptions of the HTML form elements and Componentconfiguration file 54 b contains the installation status (i.e. installedor uninstalled) for the server application programs at issue.

As will be explained, the method of the present invention allows for aWeb server administrator to generate a current HTML document thatreflects the installation status of the various server applicationprograms by appropriately modifying the HTML form element and componentconfiguration files 54 a and 54 b when a server application program iseither installed or de-installed. This action can either be accomplishedby manually installing a new configuration file or using automaticmeaning such as an appropriate server system utility.

The HTML form element configuration file 54 a contains a data structurewhich describes the specific HTML form elements that are used bycomputer system 50 for display. A HTML form element (e.g. button) isdefined as having a name attribute (i.e. button name) and an associatedcomponent (i.e. the associated server application program), asillustrated by the following example XML pseudocode:

\\name = the name of the button \\component = the component associatedwith the button \\action = the action to perform when the button ispressed <action> <button name = “sampleButtonName” component =“sampleComponent” action = “sampleButtonAction2()”/> </action>

The component configuration file 54 b contains a data structure whichdescribes the specific components (i.e. server application programs)that may or may not be installed on Web server 12. A component elementis defined as having a name attribute (i.e. application program name)and an enabled attribute (i.e. with value “true” if installed and“false” if not installed), as illustrated by the following example XMLpsuedocode:

\\name = the name of the component \\enabled = true/false depending onwhether the component is enabled or not <components> <component name =“sampleComponent” enabled = “true”/> </components>

The operation of the computer system 50 shown in FIG. 4 will now bedescribed in relation to high level operational process steps asillustrated in FIGS. 5A and 5B, which are executed by processes residingon Web server 12 and Web client 14 of computer system 50. Theseapplications associate data that represents whether server applicationprograms are installed or not on Web server 12 with corresponding HTMLform elements and generate the appropriate HTML document 40 to reflectwhich server application programs are installed on Web server 12.

Referring first to FIGS. 4 and 5A, the overall process steps 100 thatare executed by Web server 12 and Web client 14 of computer system 50are described.

At step 102, Web server 12 determines whether a Web page request hasbeen received from Web client 14. If a user at Web client 14 has sent aURL from Web client 14 to contacting Web server 12, then at step 104,display application program 52 is executed (i.e. the JSP is compiledinto servlets and run). At step 106, display application program 52 atrun time parses HTML form element and component configuration files 54 aand 54 b. At step 108, display application program 52 then generates anew HTML document 40 which will reflect the status of the components asrecorded in HTML form element and component configuration files 54 a and54 b. Finally, at step 110, in response to the user Web page request,Web server 12 sends the newly generated HTML document 40 to Web client14. At step 112, Web browser 15 installed on Web client 14 reads anddisplays HTML document 40 to the user.

Referring now to FIGS. 4 and 5B, the general process steps 200 that areexecuted by Web server 12 of computer system 50 to maintain current HTMLform element and component configuration files 54 a and 54 b in anautomated fashion are described. Process steps 200 are executed inresponse to a time schedule-based system (i.e. a check every 5 minutes)or which can be executed in response to a “maintenance checking” event(i.e. the system is programmed to “wake up” and check whenever a newapplication software is installed or de-installed).

At step 202, Web server 12 determines whether a server applicationprogram has either been recently installed or un-installed. That is,whether an installed server application program has been un-installed oran un-installed server application program has been installed. If not,then the process ends. If so, then step 204 is executed. At step 204, itis determined whether an un-installed server application program hasrecently been installed on Web server 12. If so, then at step 206, theenabled attribute of the XML component element is assigned the value“true”. If not, then at step 208, the enabled attribute of the XMLcomponent element is assigned the value “false”. At step 207, Web server12 determines whether there are any more changes to process (i.e. anymore installations or un-installations). If so, then step 204 isexecuted. If not, then the process ends.

FIGS. 6A and 6B illustrate the general process steps executed by displayserver program 52 in conjunction with the data structures provided byHTML form element configuration file 54 a and component configurationfile 54 b, as discussed above.

Referring first to FIG. 6A, the overall process steps 300 which areexecuted by display server program 52 are shown. Specifically, at step302, the display server program 52 reads the HTML form elementconfiguration file 54 a. At step 304, the component associated with theHTML form element is retrieved and stored in a temporary variable “C”.At step 306, the IsComponentEnabled routine is executed in order todetermine whether the component associated with the HTML form element isenabled or disabled.

At step 308, if the result is “true”then the corresponding HTML code isgenerated within HTML document 40 for display by Web browser 15. If not,then nothing is included within the HTML document 40 in respect of thatHTML form element. At step 312, it is determined whether there are anycomponents left to retrieve. If not, then the process ends. If so, themsteps 304, 306, 308 (and possibly 310) are repeated. In this way, allHTML form elements that are listed within the HTML form elementconfiguration file 54 a are retrieved and the entablement status of theassociated component checked.

Referring now to FIG. 6B, the process steps 400 which are executed bythe IsComponentEnabled subroutine of display server program 52 areshown. As discussed above, the IsComponentEnabled subroutine is calledat step 306 from within the overall process 300 (FIG. 6A), evaluateswhether the component which is associated with a HTML form element atissue is enabled for display, and returns either a “true” or “false”boolean value.

Specifically, at step 402, display server program 52 reads the componentconfiguration file 54 b. At step 404, display server program 52 createsa component hash table within which to store component data. At step406, the value of the name and enabled attributes of the componentelement are hashed and stored within the hash table. At step 408, foreach component element, the value of the enabled attribute is checkedand evaluated (at step 410). If the value of the enabled attribute is“true” then “true” is returned (at step 412). If the value of theenabled attribute is “false” then “false” is returned (at step 414). Itshould be noted that in the case where a component has not been defined,the component will not have been assigned an enabled valve and theresult “true” will be returned. This ensures that if a Web serveradministrator inadvertently forgets to define a component, theassociated HTML form element will still be displayed by default.

For illustrative purposes, an implementation of display server program52 is provided below in JSP pseudocode. Specifically, the followingillustrates how the IsComponentEnabled routine would be implemented:

// this part of the JSP program defines the isComponentEnabled element *Determines if the component comp is enabled or disabled * Thesecomponents are defined in XML and either enabled or disabled // publicstatic boolean isComponentEnabled(String comp) { Hashtable components =new Hashtable(); // Pseudo Code start Load XML file which defines thecomponents and whether they are enabled or disabled Put XML data intocomponents Hashtable as name value pairs name = ‘Name of Component’value = ‘True or False depending on wether the component is enabled ornot’ // Pseudo Code end // retrieve component comp from xml and returntrue or false // depending on the value set in xml  Boolean b =(Boolean)components.get(comp); if (b != null) { return b.booleanValue();} else { return true; } }

The following is an example excerpt, EXAMPLE 1, of the HTML form elementconfiguration file 54 a that is read by the display server program ofFIG. 4 when generating a HTML document for display on a Web page at theWeb client (implemented in XML code).

EXAMPLE 1 Sample HTML Form Element Configuration XML File

<action> <button name=“DELETE ROW” component=“delete row”/> <buttonname=“CREATE ROW” component=“create row”/> <button name=“MODIFY ROW”component=“modify row”/> <button name=“GRAPH ROW” component=“graphrow”/> </action>

As shown, the HTML form element configuration file 54 a includes an XMLdescription of the HTML form elements (e.g. the various buttons) namely,the value pair of the button name attribute and the associated componentattribute. As discussed in respect of the process flowchart of FIG. 6A,HTML form element configuration file 54 a is used by display serverprogram 52 to identify the set of HTML form elements (e.g. displaybuttons). For each HTML form element, display server program 52determines whether the associated component element is enabled.

The following is an example excerpt, EXAMPLE 2, of the componentconfiguration file that is read by the display server program of FIG. 4when generating a HTML document for display on a Web page at the Webclient (implemented in XML code).

EXAMPLE 2 Sample Component Configuration XML File

<components> <component name=“delete row” enabled=“true”/> <componentname=“create row” enabled=“true”/> <component name=“modify row”enabled=“true”/> <component name=“graph row” enabled=“false”/></components>

As shown, the component configuration file 54 b includes an XMLdescription of the component elements, namely, the value pair of thecomponent name attribute and enabled attributes. As discussed in respectof the process flowchart of FIG. 6B, component configuration file 54 bis used by display server program 52 to check the installation status(i.e. by checking the value of the enabled attribute) of componentelements (i.e. the various server application programs) associated withthe various HTML form elements as prescribed by the HTML form elementconfiguration file 54 a, discussed above.

Finally, the HTML code that would be generated by the display serverprogram 52 when executed with the HTML form element configuration file54 a and the component configuration file 54 b of EXAMPLE 1 and EXAMPLE2, would cause only the DELETE ROW, the CREATE ROW and the MODIFY ROWbuttons to appear on user interface 13 (FIG. 3) on Web client 14. Sincethe value of the enabled attribute of the “graph row” component elementwas false (i.e. the server application program for graphing data is notinstalled on Web server 12), HTML code is not generated for theassociated HTML form element (i.e. HTML code for the “GRAPH ROW” buttonis not generated and included within HTML document 40).

Accordingly, computer system 50 of FIG. 4 and the associated methoddescribed in FIGS. 5A, 5B, 6A, and 6B allows for the selective displayof an HTML form element on a Web page at Web client 14 depending onwhether an associated server application program is installed on Webserver 12. In this way, the present invention provides a Web servermanager with a easy to use Web page maintenance tool which ensures thatthe HTML form elements that are displayed on the Web page correlatedirectly with the server application programs that are installed on Webserver 12.

While the present invention has been described in respect of thesituation where a server application program has a 1:1 relationship witha HTML form element, it is contemplated that a server applicationprogram could be associated with a number of HTML form elements orconversely a HTML form element could be associated with a number ofserver application programs. These associations could be implementedwithin the inventive system and method in a straight forward manner byadding additional entries within the HTML form element and the componentconfiguration files 54 a and 54 b to establish the additionalassociations. Display server program 52 could be slightly amended sothat it recognizes and processes multiple entries within the HTML formelement and the component configuration files 54 a and 54 b.

It is also contemplated that instead of merely showing or hiding HTMLform elements within HTML document 40 it would be possible to offer Webserver managers the option of merely “disabling” the HTML form elementby using the “disable” attribute of some HTML tags (e.g. the disableattribute of the <button> tag). That is, the technique of associatingHTML form elements with server application programs and maintaining HTMLform element and component (i.e. server application program installationdata) in configuration files can be utilized to generate a HTML documentthat has a “disable” HTML form element. The result would be a Web pagescreen that displays a disabled HTML form element (e.g. a shaded button)when the server application program is not available for execution.While the display of disabled HTML form elements when the associatedapplication is not available has been known to cause user confusion anddetract from the overall effectiveness of the user interface, thisapproach may be desirable in some contexts.

Although the present invention has been described as disabling orenabling functionality based upon application programs, one skilled inthe art will recognize that any object available to Web server 12 maybedealt with in a similar manner. For example, an MPEG or WAV file thatmay or may not be installed. By installed, we mean available to the Webserver 12, not necessarily resident on the Web server 12. It is not theintent of the inventors to restrict the present invention to therecognition of installed application programs only.

It should be understood that various modifications can be made to thepreferred and alternative embodiments described and illustrated herein,without departing from the present invention, the scope of which isdefined in the appended claims.

1. A method of selectively displaying a markup language form element ona Web page when an object is available to a Web server, the methodcomprising the steps of: (a) associating the markup language formelement with the object; (b) reading a configuration file to determinewhether the object is available to the Web server; (c) generating amarkup language document that includes the markup language form elementif the object is available to the Web server and a disabled markuplanguage form element if the obiect is not available to the Web server;and (d) displaying the markup language form element on the Web page ifthe markup language document contains the markup language form element.2. The method of claim 1, wherein the markup language is HTML.
 3. Themethod of claim 1, wherein the markup language form element is a button.4. The method of claim 1, wherein step (b) includes maintaining a recordof whether the object is available to the Web server within saidconfiguration file.
 5. The method of claim 4, wherein the configurationfile is written in XML.
 6. The method of claim 1, wherein the object isan application program.
 7. The method of claim 1, wherein step (c)further comprises the step of generating a markup language document thatdoes not include the markup language form element if the object is notavailable to the Web server.
 8. A computer readable medium havingcomputer readable code thereon for causing a networked computer toperform all the steps of the method of claim
 1. 9. A computer readablemedium having computer readable code thereon for causing a computer toperform all the steps of the method as claimed in claim
 1. 10. Themethod of claim 1, wherein said object is a program associated with asuite of programs which may be installed or uninstalled, and saidconfiguration file indicates whether said program is installed.
 11. Themethod of claim 1, further comprising updating said configuration fileperiodically to determine availability of at least one of the object andother objects.
 12. The method of claim 1, wherein step (a) is performedprior to step (d).
 13. The method of claim 1, further comprisingcreating a hash file of data stored in said configuration file for usein determining whether to display the markup language form element. 14.The method of claim 1, wherein if the configuration file does notcontain a reference to an object, the element associated with the objectwill be displayed.
 15. A program product stored on a computer readablemedium for generating a markup language document for display on a Webpage when an object is available to a Web server, said program productcomprising: (a) means for associating the markup language form elementwith the object; (b) means for reading a configuration file to determinewhether the object is available to the Web server; (c) means forgenerating a markup language document that includes the markup languageform element if the object is available to the Web server and a disabledmarkup lanauaae form element if the obiect is not available to the Webserver; and (d) means for displaying the markup language form element onthe Web page if the markup language document contains the markuplanguage form element.
 16. The product of claim 15, wherein the markuplanguage is HTML.
 17. The product of claim 15, wherein the markuplanguage form element is a button.
 18. The product of claim 15, furthercomprising means for maintaining a record of whether the object isavailable to the Web server within said configuration file.
 19. Theproduct of claim 18, wherein the configuration file is written in XML.20. The product of claim 15, wherein the object is an applicationprogram.
 21. The product of claim 15, further comprising means for thestep of generating a markup language document that does not include themarkup language form element if the object is not available to the Webserver.
 22. The product of claim 15, wherein said object is a programassociated with a suite of programs which may be installed oruninstalled, and said configuration file indicates whether said programis installed.
 23. The product of claim 15, further comprising means forupdating said configuration file periodically to determine availabilityof at least one of the object and other objects.
 24. The product ofclaim 15, further comprising means for creating a hash file of datastored in said configuration file for use in determining whether todisplay the markup language form element.
 25. The product of claim 15,wherein if the configuration file does not contain a reference to anobject, the element associated with the object will be displayed. 26.The product of claim 15, in combination with a server system, the serversystem being for implementing operation of said product.
 27. The systemof claim 15, wherein if the configuration file does not contain areference to an object, the element associated with the object will bedisplayed.
 28. A computer system for selectively displaying a markuplanguage form element on a Web page when an associated object isavailable to a Web server, said computer system comprising: (a) a serverfor generating a markup language document, said server comprising: (i)storage means for storing a configuration file having a valuerepresenting whether the object is available to the Web server; (ii) afirst processing means coupled to said storage means for: (A)determining whether the object is available to the Web server; (B)generating a markup language document that includes the markup languageform element if the object is available to the Web server and a disabledmarkup language form element if the obiect is not available to the Webserver; (b) a communications network coupled to said server; and (c) asecond processing means coupled to said server through saidcommunications network, said second processing means for reading anddisplaying the markup language document.
 29. The system of claim 28,wherein the markup language is HTML.
 30. The system of claim 28, whereinthe markup language form element is a button.
 31. The system of claim28, wherein said first processing means further generates a markuplanguage document that does not include the markup language form elementif the object is not available to the Web server.
 32. The system ofclaim 28, wherein said object is a program associated with a suite ofprograms which may be installed or uninstalled, and said configurationfile indicates whether said program is installed.
 33. The system ofclaim 28, further comprising means for updating said configuration fileperiodically to determine availability of at least one of the object andother objects.
 34. The system of claim 28, further comprising means forcreating a hash file of data stored in said configuration file for usein determining whether to display the markup language form element.displayed.